<?php
/**
 * Description of TagRel
 *
 * @author Carlos
 */
abstract class Tag extends Eloquent {
    
    //protected $table = 'tag_rels';
    protected $guarded;
    protected $fillable;
    public $timestamps;
    public $entidadModel; // 'Relato'
    
    public function __construct() {
        $this->guarded = array('id');
        $this->fillable = array('nombre','slug');
        $this->timestamps = false;
    }
    
    
    
//    public function relatos() {
//        return $this->belongsToMany('Relato');
//    }
    public function entidadesTagueadas() {
        return $this->belongsToMany($this->entidadModel);
    }

    
//    public function relatosActivos() {
//        return $this->belongsToMany($entidadModel)->where('estado', 1);
//    }
    public function entidadesTagueadasActivas() {
        return $this->belongsToMany($this->entidadModel)->where('estado', 1);
    }

    
    // Tags que tengan Relatos activos (estado = 1)
//    public function scopeActive($query) {
//        return $query->getTagRelSinAnonima()->has('relatosActivos', '>=', 1);
//    }
    // Tags que tengan Relatos activos (estado = 1)
    public function scopeActive($query) {
        return $query->getTagSinAnonima()->has('entidadesTagueadasActivas', '>=', 1);
    }    

    public function scopeGetAllOrderedByName($query) {
        return $query->orderBy('nombre')->get(['id' ,'nombre']);
    }
    
//    public function scopeGetTagRelSinAnonima($query) {
//        return $query->where('id', '<>', 1)->orderBy('nombre');
//    }
    public function scopeGetTagSinAnonima($query) {
        return $query->where('id', '<>', 1)->orderBy('nombre');
    }
    
    public function scopeGetTagList($query) {
        // para crear dropdowns
        return $query->orderBy('nombre')->lists('nombre', 'id');
    }
}
